package com.yitao.cms.service.shopInfo;


import com.google.common.collect.Lists;
import com.skipper.base.bean.DataOutput;
import com.skipper.base.bean.PagedInput;
import com.skipper.base.bean.PagedOutput;
import com.skipper.base.utils.DateUtil;
import com.yitao.client.constant.ShopUserGradeWealEnums;
import com.yitao.client.model.shopInfo.ShopUserGradeInfoModel;
import com.yitao.client.model.shopInfo.ShopUserGradeModel;
import com.yitao.client.model.shopInfo.ShopUserGradeWealModel;
import com.yitao.client.model.user.UserInfoModel;
import com.yitao.cms.constant.UserSession;
import com.yitao.cms.model.operationUser.OperationUserCmsModel;
import com.yitao.cms.service.constant.ConstantDataService;
import com.yitao.cms.service.order.CmsOrderService;
import com.yitao.cms.service.user.appUser.AppUserService;
import com.yitao.cms.task.UserGradeTask;
import com.yitao.cms.utils.BaseUtils;
import com.yitao.cms.utils.DateUtils;
import com.yitao.cms.utils.JacksonUtils;
import com.yitao.cms.utils.NumberUtil;
import com.yitao.cms.vo.CategoryVo;
import com.yitao.cms.vo.shop.*;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;

import static com.skipper.base.utils.DateUtil.DATE_TIME_PATTERN;
import static com.yitao.client.model.shopInfo.QShopUserGradeModel.shopUserGradeModel;


@Service
public class CmsShopUserGradeService {

    private BaseUtils base = BaseUtils.getInstance();

    @Autowired
    private ShopUserGradeService shopUserGradeService;

    @Autowired
    private AppUserService appUserService;

    @Autowired
    private CmsOrderService cmsOrderService;

    @Autowired
    private ConstantDataService constantDataService;

    @Autowired
    private HttpServletRequest request;

    private static final Logger LOGGER = LoggerFactory.getLogger(UserGradeTask.class);

    public PagedOutput<ShopUserGradeListVo> getShopUserList(Long userId, String userName, String phone, String updateStaDate, String updateEndDate, Integer idx, String loginStaDate, String loginEndDate, PagedInput pagedInput) {
        Long totalElements = 0L;
        OperationUserCmsModel userSession = UserSession.getUserSession(request);
        List<ShopUserGradeListVo> shopUserGradeListVoList = Lists.newArrayList();
        if (userSession == null) { // 未登录
            throw new RuntimeException("未登录");
        }
        if (idx == null || idx == -1) {
            idx = null;
        }
        if (idx != null && idx == -2) {
            idx = 0;
        }

        LOGGER.info("UserId 【{}】 UserName 【{}】 Phone 【{}】 UpdateStaTime 【{}】 UpdateEndTime 【{}】 LoginStaTime 【{}】 LoginEndTime 【{}】 PagedInput 【{}】",
                userId, userName, phone, updateStaDate, updateEndDate, loginStaDate, loginEndDate, JacksonUtils.toJson(pagedInput));

        PagedOutput<ShopUserGradeModel> pagedOutput = shopUserGradeService.getShopUserList(userId, userSession.getShopId(), userName, phone, updateStaDate, updateEndDate, idx, loginStaDate, loginEndDate, pagedInput.getPage(), pagedInput.getSize());

        LOGGER.info("PagedOutputShopUserGradeModel 【{}】", JacksonUtils.toJson(pagedOutput));
        if (pagedOutput != null && pagedOutput.getTotalElements() > 0) {
            List<ShopUserGradeModel> shopUserGradeModels = pagedOutput.getData();
            ShopUserGradeListVo shopUserGradeListVo = null;
            for (ShopUserGradeModel shopUserGradeModels1 : shopUserGradeModels) {
                shopUserGradeListVo = new ShopUserGradeListVo();
                BeanUtils.copyProperties(shopUserGradeModels1, shopUserGradeListVo);
                UserInfoModel userInfoModel = appUserService.getAppUserInfoByUserId(shopUserGradeModels1.getUserId());
                //  @ApiModelProperty("昵称")
                shopUserGradeListVo.setUserName(userInfoModel.getNickName());
                //  @ApiModelProperty("身份等级")
                List<CategoryVo> categoryVos = this.getIdxEnum(null).getData();

                for (CategoryVo categoryVo : categoryVos) {
                    if (categoryVo.getKey() == shopUserGradeModels1.getUserGrade()) {
                        shopUserGradeListVo.setUserGradeName(categoryVo.getValue());
                        break;
                    }
                    shopUserGradeListVo.setUserGradeName("普通用户");
                }
                Long userIdOrderMoney = cmsOrderService.getUserIdOrderMoney(userInfoModel.getId());
                shopUserGradeListVo.setTurnover(NumberUtil.centToYuanForDouble(userIdOrderMoney));
                shopUserGradeListVo.setRegTime(DateUtils.getDateFormat(shopUserGradeModels1.getRegTime(), "yyyy/MM/dd HH:mm:ss"));
                shopUserGradeListVo.setUpdateTime(DateUtils.getDateFormat(shopUserGradeModels1.getUpdateTime(), "yyyy/MM/dd HH:mm:ss"));
                if (shopUserGradeListVo.getUpdateTime() == null) {
                    shopUserGradeListVo.setUpdateTime("-");
                }
                shopUserGradeListVoList.add(shopUserGradeListVo);
            }
        }

        totalElements = pagedOutput.getTotalElements();
        return new PagedOutput<ShopUserGradeListVo>(pagedInput, totalElements, shopUserGradeListVoList);
    }

    public DataOutput updateUserGrade(Long id, Integer idx) {

        LOGGER.info("UpdateUserGrade ShopUserGradeId 【{}】 idx 【{}】", id, idx);
        Date date = new Date();
        OperationUserCmsModel userSession = UserSession.getUserSession(request);
        if (userSession == null) { // 未登录
            throw new RuntimeException("未登录");
        }
        if (id == null) {
            return base.getErrorMsg("请选择用户");
        }
        if (idx == null) {
            return base.getErrorMsg("请选择身份等级");
        }
        if (idx == -2) {
            idx = 0;
        }
        ShopUserGradeModel shopUserGradeModel = shopUserGradeService.getShopUserGradeModelById(id);
        if (shopUserGradeModel == null) {
            return base.getErrorMsg();
        }
        shopUserGradeModel.setUserGrade(idx);
        shopUserGradeModel.setUpdateTime(date);
        LOGGER.info("Save ShopUserGradeModel 【{}】", JacksonUtils.toJson(shopUserGradeModel));
        return base.getSuccessMsg(shopUserGradeService.updateUserGradeByBean(shopUserGradeModel));
    }

    public DataOutput<List<CategoryVo>> getIdxEnum(Long id) {
        Integer idx = 0;
        ShopUserGradeModel shopUserGradeModel = shopUserGradeService.getShopUserGradeModelById(id);
        if (shopUserGradeModel != null) {
            idx = shopUserGradeModel.getUserGrade();
        }
        List<CategoryVo> categoryVos = Lists.newArrayList();
        OperationUserCmsModel userSession = UserSession.getUserSession(request);
        if (userSession == null) { // 未登录
            throw new RuntimeException("未登录");
        }
        if (id == null) {
            CategoryVo categoryVo = new CategoryVo();
            categoryVo.setKey(-1);
            categoryVo.setValue("全部");
            categoryVos.add(categoryVo);
        }
        if (id == null) {
            CategoryVo categoryVo = new CategoryVo();
            categoryVo.setKey(-2);
            categoryVo.setValue("普通用户");
            categoryVos.add(categoryVo);
        } else if (id != null && idx != 0) {
            CategoryVo categoryVo = new CategoryVo();
            categoryVo.setKey(-2);
            categoryVo.setValue("普通用户");
            categoryVos.add(categoryVo);
        }
        List<ShopUserGradeInfoModel> shopUserGradeInfoModelList = shopUserGradeService.getShopUserGradeInfoByShopId(userSession.getShopId());
        if (shopUserGradeInfoModelList.size() > 0) {
            CategoryVo categoryVo = null;
            for (ShopUserGradeInfoModel shopUserGradeInfoModel : shopUserGradeInfoModelList) {
                if (shopUserGradeInfoModel.getIdx() == idx) {
                    continue;
                }
                categoryVo = new CategoryVo();
                categoryVo.setKey(shopUserGradeInfoModel.getIdx());
                categoryVo.setValue(shopUserGradeInfoModel.getGradeName());
                categoryVos.add(categoryVo);
            }
        }
        LOGGER.info("GradeName GetIdxEnum 【{}】", categoryVos);
        return base.getSuccessMsg(categoryVos);
    }

    public DataOutput updateStatus(Long id) {
        Date date = new Date();
        if (id == null) {
            return base.getErrorMsg("请选择需要开启的权益");
        }
        LOGGER.info("ShopUserGradeInfoId 【{}】", id);
        OperationUserCmsModel userSession = UserSession.getUserSession(request);
        if (userSession == null) { // 未登录
            throw new RuntimeException("未登录");
        }
        ShopUserGradeInfoModel shopUserGradeInfoModel = shopUserGradeService.getShopUserGradeInfoById(id);
        if (shopUserGradeInfoModel == null) {
            return base.getErrorMsg("请先保存");
        }
        if (!shopUserGradeInfoModel.getGradeStatus()) {
            //开始参数验证
            List<ShopUserGradeWealModel> shopUserGradeWealModelList = shopUserGradeService.getShopUserGradeWealByGradeInfoId(shopUserGradeInfoModel.getId(), userSession.getShopId());
            AddShopGradeInfoVo addShopGradeInfoVo = new AddShopGradeInfoVo();
            addShopGradeInfoVo.setGradeName(shopUserGradeInfoModel.getGradeName());
            addShopGradeInfoVo.setId(shopUserGradeInfoModel.getId());
            addShopGradeInfoVo.setGradeStatus(shopUserGradeInfoModel.getGradeStatus());
            List<AddShopGradeWealVo> addShopGradeWealVoList = Lists.newArrayList();
            AddShopGradeWealVo addShopGradeWealVo = null;
            for (ShopUserGradeWealModel shopUserGradeWealModel : shopUserGradeWealModelList) {
                addShopGradeWealVo = new AddShopGradeWealVo();
                addShopGradeWealVo.setDerateType(shopUserGradeWealModel.getDerateType());
                addShopGradeWealVo.setFaceValue(NumberUtil.centToYuanForDouble(shopUserGradeWealModel.getFaceValue()));
                addShopGradeWealVo.setRequireValue(NumberUtil.centToYuanForDouble(shopUserGradeWealModel.getRequireValue()));
                addShopGradeWealVoList.add(addShopGradeWealVo);
            }
            addShopGradeInfoVo.setAddShopGradeWealVoList(addShopGradeWealVoList);
            DataOutput dataOutput = verifyAddShopGradeInfoVo(addShopGradeInfoVo);
            if (dataOutput != null) {
                return dataOutput;
            }
        }
        shopUserGradeInfoModel.setLastUpdateBy(userSession.getId());
        shopUserGradeInfoModel.setLastUpdateTime(date);
        shopUserGradeInfoModel.setLastUpdateByName(userSession.getUserName());
        shopUserGradeInfoModel.setGradeStatus(!shopUserGradeInfoModel.getGradeStatus());
        LOGGER.info("Save ShopUserGradeInfoModel 【{}】", JacksonUtils.toJson(shopUserGradeInfoModel));
        return base.getSuccessMsg(shopUserGradeService.updateUserGradeInfoByBean(shopUserGradeInfoModel));
    }

    public DataOutput<ShopGradeInfoVo> addOrUpdateGradeInfo(ShopGradeInfoVo shopGradeInfoVo) {
        LOGGER.info("AddOrUpdateGradeInfo 【{}】", JacksonUtils.toJson(shopGradeInfoVo));
        Date date = new Date();
        OperationUserCmsModel userSession = UserSession.getUserSession(request);
        if (userSession == null) { // 未登录
            throw new RuntimeException("未登录");
        }
        DataOutput dataOutput = verifyGradeInfo(shopGradeInfoVo);
        if (dataOutput != null) {
            return dataOutput;
        }
        //  List<ShopUserGradeInfoModel> shopUserGradeInfoModelList = Lists.newArrayList();
        List<ShopUserGradeWealModel> shopUserGradeWealModelList = Lists.newArrayList();
        List<AddShopGradeInfoVo> addShopGradeInfoVoList = shopGradeInfoVo.getAddShopGradeInfoVo();
        ShopUserGradeInfoModel shopUserGradeInfoModel = null;
        for (int i = 0; i < addShopGradeInfoVoList.size(); i++) {
            Integer idx = i + 1;
            AddShopGradeInfoVo addShopGradeInfoVo = addShopGradeInfoVoList.get(i);
            shopUserGradeInfoModel = shopUserGradeService.getShopUserGradeInfoByIdxAndShopId(userSession.getShopId(), idx);
            if (shopUserGradeInfoModel == null) {
                shopUserGradeInfoModel = new ShopUserGradeInfoModel();
                shopUserGradeInfoModel.setCreateTime(date);
                shopUserGradeInfoModel.setCreateByName(userSession.getUserName());
                shopUserGradeInfoModel.setCreateBy(userSession.getId());
                shopUserGradeInfoModel.setGradeStatus(Boolean.FALSE);
                shopUserGradeInfoModel.setShopId(userSession.getShopId());
                shopUserGradeInfoModel.setDeleteStatus(Boolean.FALSE);
            }
            shopUserGradeInfoModel.setGradeName(addShopGradeInfoVo.getGradeName());
            shopUserGradeInfoModel.setLastUpdateByName(userSession.getUserName());
            shopUserGradeInfoModel.setLastUpdateBy(userSession.getId());
            shopUserGradeInfoModel.setLastUpdateTime(userSession.getLastUpdateTime());
            shopUserGradeInfoModel.setIdx(idx);
            shopUserGradeInfoModel = shopUserGradeService.updateUserGradeInfoByBean(shopUserGradeInfoModel);
            List<AddShopGradeWealVo> addShopGradeWealVoList = addShopGradeInfoVo.getAddShopGradeWealVoList();
            ShopUserGradeWealModel shopUserGradeWealModel = null;
            for (AddShopGradeWealVo addShopGradeWealVo : addShopGradeWealVoList) {
                shopUserGradeWealModel = new ShopUserGradeWealModel();
                shopUserGradeWealModel.setCreateBy(userSession.getId());
                shopUserGradeWealModel.setCreateByName(userSession.getUserName());
                shopUserGradeWealModel.setCreateTime(date);
                shopUserGradeWealModel.setDeleteStatus(Boolean.FALSE);
                shopUserGradeWealModel.setIdx(idx);
                shopUserGradeWealModel.setShopId(userSession.getShopId());
                shopUserGradeWealModel.setGradeInfoId(shopUserGradeInfoModel.getId());
                shopUserGradeWealModel.setDerateType(addShopGradeWealVo.getDerateType());
                if (addShopGradeWealVo.getDerateType() == ShopUserGradeWealEnums.DERATE_TYPE.ORDER_REDUCTION.getCode()) {
                    shopUserGradeWealModel.setDerateRequire(ShopUserGradeWealEnums.DERATE_REQUIRE.CONDITIONAL.getCode());
                } else {
                    shopUserGradeWealModel.setDerateRequire(ShopUserGradeWealEnums.DERATE_REQUIRE.NO_REQUIREMENT.getCode());
                }
                shopUserGradeWealModel.setRequireValue(NumberUtil.yuanToCent(addShopGradeWealVo.getRequireValue()));
                shopUserGradeWealModel.setFaceValue(NumberUtil.yuanToCent(addShopGradeWealVo.getFaceValue()));
                shopUserGradeWealModelList.add(shopUserGradeWealModel);
            }
        }
        LOGGER.info("Save ShopUserGradeWealModelList 【{}】", JacksonUtils.toJson(shopUserGradeWealModelList));
        shopUserGradeService.saveShopUserGradeWealList(shopUserGradeWealModelList);
        return this.getGradeInfo();
    }

    /**
     * 保存参数验证
     *
     * @param shopGradeInfoVo
     * @return
     */
    private DataOutput verifyGradeInfo(ShopGradeInfoVo shopGradeInfoVo) {
        if (shopGradeInfoVo == null) {
            return base.getErrorMsg();
        }
        List<AddShopGradeInfoVo> addShopGradeInfoVoList = shopGradeInfoVo.getAddShopGradeInfoVo();
        if (addShopGradeInfoVoList == null || addShopGradeInfoVoList.size() < 1) {
            return base.getErrorMsg();
        }
        for (AddShopGradeInfoVo addShopGradeInfoVo : addShopGradeInfoVoList) {
            ShopUserGradeInfoModel userGradeInfoModel = shopUserGradeService.getShopUserGradeInfoById(addShopGradeInfoVo.getId());
            if (userGradeInfoModel == null) {
                continue;
            }
            if (userGradeInfoModel.getDeleteStatus()) {
                continue;
            }
            if (!userGradeInfoModel.getGradeStatus()) {
                continue;
            }
            DataOutput dataOutput = verifyAddShopGradeInfoVo(addShopGradeInfoVo);
            if (dataOutput != null) {
                return dataOutput;
            }
        }
        return null;
    }

    private DataOutput verifyAddShopGradeInfoVo(AddShopGradeInfoVo addShopGradeInfoVo) {
        String gradeName = addShopGradeInfoVo.getGradeName();
        if (StringUtils.isEmpty(gradeName)) {
            return base.getErrorMsg("等级名称不能为空");
        }
        if (gradeName.trim().length() > 4) {
            return base.getErrorMsg("等级名称有误,等级名称最多四个字");
        }
        List<AddShopGradeWealVo> addShopGradeWealVoList = addShopGradeInfoVo.getAddShopGradeWealVoList();
        if (addShopGradeWealVoList == null || addShopGradeWealVoList.size() < 1) {
            return base.getErrorMsg("请设置等级权益后在保存");
        }
        for (AddShopGradeWealVo addShopGradeWealVo : addShopGradeWealVoList) {
            if (addShopGradeWealVo.getDerateType() == null || addShopGradeWealVo.getFaceValue() == null) {
                return base.getErrorMsg("请设置等级权益后在保存");
            }
            if (addShopGradeWealVo.getFaceValue() <= 0D) {
                return base.getErrorMsg("优惠面值必须大于 0 ");
            }
            if (addShopGradeWealVo.getDerateType() == ShopUserGradeWealEnums.DERATE_TYPE.ORDER_REDUCTION.getCode()) {
                if (addShopGradeWealVo.getRequireValue() == null) {
                    return base.getErrorMsg("请设置权益条件");
                }
                if (addShopGradeWealVo.getRequireValue() <= 0D) {
                    return base.getErrorMsg("权益条件必须大于 0 ");
                }
            }
        }
        return null;
    }


    public DataOutput<ShopGradeInfoVo> getGradeInfo() {
        ShopGradeInfoVo shopGradeInfoVo = new ShopGradeInfoVo();
        OperationUserCmsModel userSession = UserSession.getUserSession(request);
        if (userSession == null) { // 未登录
            throw new RuntimeException("未登录");
        }
        List<AddShopGradeInfoVo> addShopGradeInfoVoList = Lists.newArrayList();

        List<ShopGradeShowVo> shopGradeShowVoList = Lists.newArrayList();

        ShopGradeShowVo shopGradeShowVo = null;
        AddShopGradeInfoVo addShopGradeInfoVo = null;
        List<ShopUserGradeInfoModel> shopUserGradeInfoModelList = shopUserGradeService.getShopUserGradeInfoByShopId(userSession.getShopId());
        if (shopUserGradeInfoModelList != null) {
            for (ShopUserGradeInfoModel shopUserGradeInfoModel : shopUserGradeInfoModelList) {
                shopGradeShowVo = new ShopGradeShowVo();
                addShopGradeInfoVo = new AddShopGradeInfoVo();
                StringBuffer stringBuffer = new StringBuffer();
                stringBuffer.append(shopUserGradeInfoModel.getGradeName()).append(": ").append("享");
                List<ShopUserGradeWealModel> shopUserGradeWealModelList = shopUserGradeService.getShopUserGradeWealByGradeInfoId(shopUserGradeInfoModel.getId(), userSession.getShopId());
                if (shopUserGradeWealModelList == null) {
                    shopUserGradeWealModelList = Lists.newArrayList();
                }
                List<AddShopGradeWealVo> addShopGradeWealVoList = Lists.newArrayList();
                AddShopGradeWealVo addShopGradeWealVo = null;
                for (ShopUserGradeWealModel shopUserGradeWealModel : shopUserGradeWealModelList) {
                    addShopGradeWealVo = new AddShopGradeWealVo();
                    addShopGradeWealVo.setDerateType(shopUserGradeWealModel.getDerateType());
                    addShopGradeWealVo.setFaceValue(NumberUtil.centToYuanForDouble(shopUserGradeWealModel.getFaceValue()));
                    addShopGradeWealVo.setRequireValue(NumberUtil.centToYuanForDouble(shopUserGradeWealModel.getRequireValue()));
                    addShopGradeWealVoList.add(addShopGradeWealVo);
                    if (addShopGradeWealVo.getDerateType() == ShopUserGradeWealEnums.DERATE_TYPE.ORDER_REDUCTION.getCode()) {
                        stringBuffer.append("满").append(addShopGradeWealVo.getRequireValue()).append("元").append("减").append(" ").append(addShopGradeWealVo.getFaceValue()).append(" 元");
                    } else if (addShopGradeWealVo.getDerateType() == ShopUserGradeWealEnums.DERATE_TYPE.PRODUCT_FULL_REDUCTION.getCode()) {
                        stringBuffer.append(ShopUserGradeWealEnums.DERATE_TYPE.PRODUCT_FULL_REDUCTION.getMsg()).append(" ").append(addShopGradeWealVo.getFaceValue()).append(" 元");
                    } else if (addShopGradeWealVo.getDerateType() == ShopUserGradeWealEnums.DERATE_TYPE.PRODUCT_DISCOUNT.getCode()) {
                        stringBuffer.append(ShopUserGradeWealEnums.DERATE_TYPE.PRODUCT_DISCOUNT.getMsg()).append(" ").append(addShopGradeWealVo.getFaceValue()).append(" 折");
                    }
                }
                addShopGradeInfoVo.setGradeName(shopUserGradeInfoModel.getGradeName());
                addShopGradeInfoVo.setId(shopUserGradeInfoModel.getId());
                addShopGradeInfoVo.setAddShopGradeWealVoList(addShopGradeWealVoList);
                addShopGradeInfoVo.setGradeStatus(shopUserGradeInfoModel.getGradeStatus());
                shopGradeShowVo.setShopGradeInfo(stringBuffer.toString());
                addShopGradeInfoVoList.add(addShopGradeInfoVo);
                if (shopUserGradeInfoModel.getGradeStatus()) {
                    shopGradeShowVoList.add(shopGradeShowVo);
                }
            }
        }
        String constantDataModelKey = constantDataService.getConstantDataModelById(600L);
        if (addShopGradeInfoVoList.size() < 1) {
            if (constantDataModelKey != null) {
                Integer key = Integer.valueOf(constantDataModelKey);
                for (int i = 1; i <= key; i++) {
                    addShopGradeInfoVo = new AddShopGradeInfoVo();
                    if (i == 1) {
                        addShopGradeInfoVo.setGradeName("初级代理");
                    } else if (i == 2) {
                        addShopGradeInfoVo.setGradeName("高级代理");
                    } else if (i == 3) {
                        addShopGradeInfoVo.setGradeName("王牌代理");
                    } else if (i == 4) {
                        addShopGradeInfoVo.setGradeName("合伙人");
                    } else {
                        addShopGradeInfoVo.setGradeName("会员等级");
                    }
                    addShopGradeInfoVo.setId(-1L);
                    AddShopGradeWealVo addShopGradeWealVo = new AddShopGradeWealVo();
                    //addShopGradeWealVo.setRequireValue(0.01D);
                    //addShopGradeWealVo.setFaceValue(0.01D);
                    addShopGradeWealVo.setDerateType(ShopUserGradeWealEnums.DERATE_TYPE.PRODUCT_FULL_REDUCTION.getCode());
                    addShopGradeInfoVo.setAddShopGradeWealVoList(Lists.newArrayList(addShopGradeWealVo));
                    addShopGradeInfoVoList.add(addShopGradeInfoVo);
                }
            }
        }
        shopGradeInfoVo.setAddShopGradeInfoVo(addShopGradeInfoVoList);
        shopGradeInfoVo.setShopGradeShowVoList(shopGradeShowVoList);
        return base.getSuccessMsg(shopGradeInfoVo);
    }
}